<?php

/** Framework_File_Exception */
require_once 'Framework/File/Exception.php';

class Framework_File
{
    protected $_file;
    protected $_uploadfile;
    
    public function __construct($name)
    {
        if (!isset($_FILES[$name])) {
            throw new Framework_File_Exception("Файл $name не загрузился");
        }
        if (0 != $_FILES[$name]['error']) {
            throw new Framework_File_Exception("Файл загружен неправильно. Провертье его тип и размер");
        }
        $this->_file = $_FILES[$name];
    }
    
    public function moveTo($uploadfile)
    {
        if (!@move_uploaded_file($this->_file['tmp_name'], $uploadfile)) {
            throw new Framework_File_Exception("Не удалось записать файл");
        }
        $this->_uploadfile = $uploadfile;
        
        return true;
    }
    
    public function imageType()
    {
        $type = exif_imagetype($this->_file['tmp_name']);

        switch ($type) {
            case 1:
                $ext = 'gif';
                break;
            case 2:
                $ext = 'jpg';
                break;
            case 3:
                $ext = 'png';
                break;
            default:
                throw new Framework_File_Exception('This is not image');
        }
        
        return $ext;
    }
}